Technical Note TN2008
The CGDirectPalette API

目次

このテクニカルノートでは、Mac OS X で使用される CGDirectPalette API のリファレンス情報を示します。

CGDirectPalette API は、CGDirectDisplay API の助けを借りて、ディスプレイパレットへの容易なアクセスを提供するように設計されています。

このテクニカルノートでは、重要なデータ型とこの API に含まれるすべての関数呼び出しについて説明します。なお、「Technical Note 2007」では、CGDirectDisplay によって提供される API を取り扱っています。

 更新日: 2000 年 11 月 8 日






定義

 

CGDirectPalette API で使用されるデータ型

Data Type

説明

CGDirectDisplayID

ディスプレイへの opaque 参照 (kCGDirectMainDisplay は便宜上メインディスプレイを参照します)

CGDirectPaletteRef

パレットへの opaque 参照

CGTableCount

符号なし 32 ビット値

CGByteValue

ガンマ/パレット関数によって使用される符号なし 8 ビット値

CGPaletteBlendFraction

0.0 から 1.0 の範囲の浮動小数点値

CGDeviceColor

赤、緑、および青に対応する 3 つの浮動小数点値によって表される色 (各チャネルで 0.0 は黒色、1.0 は最大の明度)

CGDeviceByteColor

赤、緑、および青に対応する 3 つの符号なしバイト値によって表される色 (各チャネルで 0x00 は黒色、0xFF は最大の明度)

ページの先頭に戻る

 

パレットの作成とリリース

CGDirectPaletteRef CGPaletteCreateDefaultColorPalette(void);
  • デフォルトの 8 ビットカラーパレットを表す、新しいパレットオブジェクトを作成します。
  • CGPaletteRelease() を使用して、結果として作成されたパレットをリリースします。
CGDirectPaletteRef CGPaletteCreateWithDisplay(
	CGDirectDisplayID display);
  • 可能な場合に、指定されたディスプレイの現在のパレットのコピーを作成します。
  • 現在のディスプレイモードがパレットをサポートしていない場合に NULL を返します。
  • CGPaletteRelease() を使用して、結果として作成されたパレットをリリースします。
CGDirectPaletteRef CGPaletteCreateWithCapacity(
	CGTableCount capacity );
  • 指定された容量を含む新しいパレットを作成します。
  • デフォルトのカラーパレットのエントリを初期化します。
  • CGPaletteRelease() を使用して、結果として作成されたパレットをリリースします。
CGDirectPaletteRef CGPaletteCreateWithSamples(
	CGDeviceColor * sampleTable,
	CGTableCount sampleCount);
  • 指定された容量と内容を含む新しいパレットオブジェクトを作成します。
  • CGPaletteRelease() を使用して、結果として作成されたパレットをリリースします。
CGDirectPaletteRef CGPaletteCreateWithByteSamples(
	CGDeviceByteColor * sampleTable,
	CGTableCount sampleCount);
  • 指定された容量と内容を含む新しいパレットオブジェクトを作成します。
  • CGDeviceColors の代わりに CGDeviceByteColors を要求する点を除いて、CGPaletteCreateWithSamples と同じです。
  • CGPaletteRelease() を使用して、結果として作成されたパレットをリリースします。
void CGPaletteRelease(
	CGDirectPaletteRef palette );
  • パレットをリリースします。

ページの先頭に戻る

 

パレット情報へのアクセス

CGDeviceColor CGPaletteGetColorAtIndex(
	CGDirectPaletteRef palette,
	CGTableCount index);
  • 指定されたインデックスにある CGDeviceColor を返します。
  • インデックスが範囲外の場合に 黒色 ( 0, 0, 0 ) を返します。
CGTableCount CGPaletteGetIndexForColor(
	CGDirectPaletteRef palette,
	CGDeviceColor color);
  • 指定されたカラー値に最も近いインデックスを返します。
  • 返されるインデックスは、指定された色に関する最小 RMS (Root-mean-squared) 誤差を含むパレットカラーに対応します。
CGTableCount CGPaletteGetNumberOfSamples(
	CGDirectPaletteRef palette);
  • パレットに含まれるサンプルの数を返します。
  • 無効な CGDirectPaletteRef には 0 を返します。
void CGPaletteSetColorAtIndex(
	CGDirectPaletteRef palette,
	CGDeviceColor color,
	CGTableCount index);
  • 指定されたインデックスにカラー値を設定します。
  • インデックスが範囲外にある場合はエラーが発生します。

ページの先頭に戻る

 

パレットのコピー

CGDirectPaletteRef CGPaletteCreateCopy(
	CGDirectPaletteRef palette);
  • 指定されたパレットと同じ容量と内容を含む新しいパレットオブジェクトを作成します。
  • CGPaletteRelease() を使用して、結果として作成されたパレットをリリースします。
CGDirectPaletteRef CGPaletteCreateFromPaletteBlendedWithColor(
	CGDirectPaletteRef palette,
	CGPaletteBlendFraction fraction,
	CGDeviceColor color);
  • 指定されたパレットとデバイスカラーの小数部分をブレンドして、新しいパレットオブジェクトを作成します。
  • CGPaletteRelease() を使用して、結果として作成されたパレットをリリースします。

ページの先頭に戻る

 

パレットの比較

Boolean CGPaletteIsEqualToPalette(
	CGDirectPaletteRef palette1,
	CGDirectPaletteRef palette2);
  • 2 つのパレットが同じ容量と内容を持つ場合に true を返します。
  • そうでない場合に false を返します。
  • 一方または両方の CGDirectPaletteRefs が無効な場合に false を返します。

要約

このテクニカルノートでは、重要なデータ型や関数呼び出しなど、CGDirectPalette API の使用を始めるときに必要となる基本的な情報について説明しました。CGDirectDisplay API の使い方については、「Technical Note 2007」を参照してください。